home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Burning & Media / MediaMan 3 / MediaMan3Setup.msi / disk1.cab / MediaMan_Help.chm / js / cb2.js next >
Text File  |  2008-09-16  |  7KB  |  280 lines

  1. /*
  2.  * This script was created by Erik Arvidsson (erik@eae.net)
  3.  * for WebFX (http://webfx.eae.net
  4.  * Copyright 2001
  5.  * 
  6.  * For usage see license at http://webfx.eae.net/license.html    
  7.  *
  8.  * Created: 2001-03-17
  9.  */
  10.  
  11. /*
  12.  * This file depends on emulateAttachEvent and extendEventObject
  13.  * found in ieemu.js to get Mozilla to work
  14.  * 
  15.  * Styling is currently done in a separate css files
  16.  * cb2.css
  17.  *
  18.  */
  19.  
  20. /* Set up IE Emualtion for Mozilla */
  21. if (window.moz == true && (typeof window.emulateAttachEvent != "function" || typeof window.extendEventObject != "function"))
  22.     alert("Error! IE Emulation file not included.");
  23.  
  24. if (window.moz) {
  25.     emulateAttachEvent();
  26.     extendEventObject();
  27. }
  28. /* end Mozilla specific emulation initiation */
  29.  
  30. function createButton(el) {
  31.  
  32.     el.attachEvent("onmouseover",    createButton.overCoolButton);
  33.     el.attachEvent("onmouseout",    createButton.outCoolButton);
  34.     el.attachEvent("onmousedown",    createButton.downCoolButton);
  35.     el.attachEvent("onmouseup",        createButton.upCoolButton);
  36.     el.attachEvent("onclick",        createButton.clickCoolButton);    el.attachEvent("ondblclick",    createButton.clickCoolButton);
  37.     el.attachEvent("onkeypress",    createButton.keypressCoolButton);
  38.     el.attachEvent("onkeyup",        createButton.keyupCoolButton);
  39.     el.attachEvent("onkeydown",        createButton.keydownCoolButton);
  40.     el.attachEvent("onfocus",        createButton.focusCoolButton);
  41.     el.attachEvent("onblur",        createButton.blurCoolButton);
  42.     
  43.     el.className = "coolButton";
  44.     
  45.     el.setEnabled    = createButton.setEnabled;
  46.     el.getEnabled    = createButton.getEnabled;
  47.     el.setValue        = createButton.setValue;
  48.     el.getValue        = createButton.getValue;
  49.     el.setToggle    = createButton.setToggle;
  50.     el.getToggle    = createButton.getToggle;
  51.     el.setAlwaysUp    = createButton.setAlwaysUp;
  52.     el.getAlwaysUp    = createButton.getAlwaysUp;
  53.     
  54.     el._enabled        = true;
  55.     el._toggle        = false;
  56.     el._value        = false;
  57.     el._alwaysUp    = false;
  58.     
  59.     return el;
  60. }
  61.  
  62. createButton.LEFT = window.moz ? 0 : 1;
  63.  
  64. /* event listeners */
  65.  
  66. createButton.overCoolButton = function () {
  67.     var toEl = createButton.getParentCoolButton(window.event.toElement);
  68.     var fromEl = createButton.getParentCoolButton(window.event.fromElement);
  69.     if (toEl == fromEl || toEl == null) return;
  70.     
  71.     toEl._over = true;
  72.     
  73.     if (!toEl._enabled) return;
  74.     
  75.     createButton.setClassName(toEl);
  76. };
  77.  
  78. createButton.outCoolButton = function () {
  79.     var toEl = createButton.getParentCoolButton(window.event.toElement);
  80.     var fromEl = createButton.getParentCoolButton(window.event.fromElement);
  81.     if (toEl == fromEl || fromEl == null) return;
  82.     
  83.     fromEl._over = false;
  84.     fromEl._down = false;
  85.     
  86.     if (!fromEl._enabled) return;    
  87.  
  88.     createButton.setClassName(fromEl);
  89. };
  90.  
  91. createButton.downCoolButton = function () {
  92.     if (window.event.button != createButton.LEFT) return;
  93.     
  94.     var el = createButton.getParentCoolButton(window.event.srcElement);
  95.     if (el == null) return;
  96.     
  97.     el._down = true;
  98.     
  99.     if (!el._enabled) return;
  100.  
  101.     createButton.setClassName(el);
  102. };
  103.  
  104. createButton.upCoolButton = function () {
  105.     if (window.event.button != createButton.LEFT) return;
  106.     
  107.     var el = createButton.getParentCoolButton(window.event.srcElement);
  108.     if (el == null) return;
  109.     
  110.     el._down = false;
  111.     
  112.     if (!el._enabled) return;
  113.     
  114.     if (el._toggle)
  115.         el.setValue(!el._value);
  116.     else
  117.         createButton.setClassName(el);
  118. };
  119.  
  120. createButton.clickCoolButton = function () {
  121.      var el = createButton.getParentCoolButton(window.event.srcElement);
  122.     el.onaction = el.getAttribute("onaction");
  123.     if (el == null || !el._enabled || el.onaction == "" || el.onaction == null) return;
  124.     
  125.     if (typeof el.onaction == "string")
  126.         el.onaction = new Function ("event", el.onaction);
  127.     
  128.     el.onaction(window.event);
  129. };
  130.  
  131. createButton.keypressCoolButton = function () {
  132.     var el = createButton.getParentCoolButton(window.event.srcElement);
  133.     if (el == null || !el._enabled || window.event.keyCode != 13) return;
  134.     
  135.     el.setValue(!el._value);
  136.     
  137.     if (el.onaction == null) return;
  138.     
  139.     if (typeof el.onaction == "string")
  140.         el.onaction = new Function ("event", el.onaction);
  141.     
  142.     el.onaction(window.event);
  143. };
  144.  
  145. createButton.keydownCoolButton = function () {
  146.     var el = createButton.getParentCoolButton(window.event.srcElement);
  147.     if (el == null || !el._enabled || window.event.keyCode != 32) return;
  148.     createButton.downCoolButton();
  149. };
  150.  
  151. createButton.keyupCoolButton = function () {
  152.     var el = createButton.getParentCoolButton(window.event.srcElement);
  153.     if (el == null || !el._enabled || window.event.keyCode != 32) return;
  154.     createButton.upCoolButton();
  155.     
  156.     //el.setValue(!el._value);    // is handled in upCoolButton()
  157.     
  158.     if (el.onaction == null) return;
  159.     
  160.     if (typeof el.onaction == "string")
  161.         el.onaction = new Function ("event", el.onaction);
  162.     
  163.     el.onaction(window.event);
  164. };
  165.  
  166. createButton.focusCoolButton = function () {
  167.     var el = createButton.getParentCoolButton(window.event.srcElement);
  168.     if (el == null || !el._enabled) return;
  169.     createButton.setClassName(el);
  170. };
  171.  
  172. createButton.blurCoolButton = function () {
  173.     var el = createButton.getParentCoolButton(window.event.srcElement);
  174.     if (el == null) return;
  175.     
  176.     createButton.setClassName(el)
  177. };
  178.  
  179. createButton.getParentCoolButton = function (el) {
  180.     if (el == null) return null;
  181.     if (/coolButton/.test(el.className))
  182.         return el;
  183.     return createButton.getParentCoolButton(el.parentNode);
  184. };
  185.  
  186. /* end event listeners */
  187.  
  188. createButton.setClassName = function (el) {
  189.     var over = el._over;
  190.     var down = el._down;
  191.     var focused;
  192.     try {
  193.         focused = (el == document.activeElement && el.tabIndex > 0);
  194.     }
  195.     catch (exc) {
  196.         focused = false;
  197.     }
  198.     
  199.     if (!el._enabled) {
  200.         if (el._value)
  201.             el.className = "coolButtonActiveDisabled";
  202.         else
  203.             el.className = el._alwaysUp ? "coolButtonUpDisabled" : "coolButtonDisabled";
  204.     }
  205.     else {
  206.         if (el._value) {
  207.             if (over || down || focused)
  208.                 el.className = "coolButtonActiveHover";
  209.             else
  210.                 el.className = "coolButtonActive";
  211.         }
  212.         else {
  213.             if (down)
  214.                 el.className = "coolButtonActiveHover";
  215.             else if (over || el._alwaysUp || focused)
  216.                 el.className = "coolButtonHover";
  217.             else
  218.                 el.className = "coolButton";
  219.         }
  220.     }
  221. };
  222.  
  223. createButton.setEnabled = function (b) {
  224.     if (this._enabled != b) {
  225.         this._enabled = b;
  226.         createButton.setClassName(this, false, false);
  227.         if (!window.moz) {
  228.             if (b)
  229.                 this.innerHTML = this.firstChild.firstChild.innerHTML;
  230.             else
  231.                 this.innerHTML = "<span class='coolButtonDisabledContainer'><span class='coolButtonDisabledContainer'>" + this.innerHTML + "</span></span>";
  232.         }
  233.     }
  234. };
  235.  
  236. createButton.getEnabled = function () {
  237.     return this._enabled;
  238. };
  239.  
  240. createButton.setValue = function (v, bDontTriggerOnChange) {
  241.     if (this._toggle && this._value != v) {
  242.         this._value = v;
  243.         createButton.setClassName(this, false, false);
  244.         
  245.         this.onchange = this.getAttribute("onchange");
  246.         
  247.         if (this.onchange == null || this.onchange == "" || bDontTriggerOnChange) return;
  248.         
  249.         if (typeof this.onchange == "string")
  250.             this.onchange = new Function("", this.onchange);
  251.  
  252.         this.onchange();
  253.     }
  254. };
  255.  
  256. createButton.getValue = function () {
  257.     return this._value;
  258. };
  259.  
  260. createButton.setToggle = function (t) {
  261.     if (this._toggle != t) {
  262.         this._toggle = t;
  263.         if (!t) this.setValue(false);
  264.     }
  265. };
  266.  
  267. createButton.getToggle = function () {
  268.     return this._toggle;
  269. };
  270.  
  271. createButton.setAlwaysUp = function (up) {
  272.     if (this._alwaysUp != up) {
  273.         this._alwaysUp = up;
  274.         createButton.setClassName(this, false, false);
  275.     }
  276. };
  277.  
  278. createButton.getAlwaysUp = function () {
  279.     return this._alwaysUp;
  280. };